/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package EntidadesController;

import java.sql.*;
import java.util.List;


/**
 *
 * @author Tiago
 */
public class Preferencia {
    private String matriculadisc = "";
    private String descricao = "";
    private boolean hasSelected = false;
    private SQLException erro = new SQLException();
    static Connection conexao = null;
    static Statement estado = null;
    static ResultSet rs;
    private boolean render=false;
    private String msgerro;

    public boolean isRender() {
        return render;
    }

    public void setRender(boolean render) {
        this.render = render;
    }
    public String getMsgerro() {
        return msgerro;
    }

    public void setMsgerro(String msgerro) {
        this.msgerro = msgerro;
    }

    public Preferencia() {
        conexao = new Conexao().Acesso();
    }

    public String getMatriculaDisc(){
        return this.matriculadisc;
    }

    public void setMatriculaDisc(String matricula)
    {
        this.matriculadisc = matricula;
    }
    public String getDescricao( )
    {
        return this.descricao;
    }

    public void setDescricao(String descricao)
    {
        this.descricao = descricao;
    }

    public boolean getHasSelected()
    {
        return this.hasSelected;
    }
    public void setHasSelected(boolean selection)
    {
        this.hasSelected = selection;
    }
    
    public void atualizarPreferencia(List<Preferencia> listaNova) throws SQLException
    {
        String result_inserir = "failure";
        estado = conexao.createStatement();
        try
        {
            estado.execute("BEGIN WORK;");
            estado.execute("DELETE FROM preferencia WHERE discente_matriculadisc = '"+this.matriculadisc+"'");
            int i;
            int j = listaNova.size();
            for(i=0;i<j;i++)
            {
                if(listaNova.get(i).hasSelected)
                    estado.execute("INSERT INTO preferencia VALUES ('"+this.matriculadisc+"','"+listaNova.get(i).descricao+"');");
            }
            estado.execute("COMMIT;");
            estado.close();
            result_inserir = "sucess";
            render = false;
        }
        catch (SQLException e)
        {
            this.erro = e;
            msgerro = erro.getLocalizedMessage();

            if (msgerro.contains("pk_matriculadisc")&&msgerro.contains("unicidade"))
            {msgerro = "Esse número de matrícula ja está cadastrado!";}
            estado.execute("ROLLBACK;");
            estado.close();
            result_inserir = "failure";
            render = true;
        }

    }

    public String getErro() {
        return erro.getMessage();
    }

}
